package com.kurt.dto.update;

import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * 组织更新请求DTO
 * 用于接收更新组织的请求参数
 */
@Data
public class OrganizationUpdateRequest extends BaseUpdate {

    /**
     * 组织ID
     */
    @NotNull(message = "组织ID不能为空")
    private Long id;

    /**
     * 组织名称
     */
    private String name;

    /**
     * 父组织ID
     */
    private Long parentId;

    /**
     * 排序号
     */
    private Integer sortOrder;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 组织扩展信息
     */
    private OrganizationExtensionUpdateRequest organizationExtension;

    /**
     * 组织扩展信息更新请求DTO
     */
    @Data
    public static class OrganizationExtensionUpdateRequest {

        /**
         * 组织编码
         */
        private String code;

        /**
         * 组织类型
         */
        private String type;

        /**
         * 负责人ID
         */
        private Long managerId;

        /**
         * 联系电话
         */
        private String phone;

        /**
         * 邮箱
         */
        private String email;

        /**
         * 地址
         */
        private String address;

        /**
         * 组织描述
         */
        private String description;

        /**
         * 自定义字段1
         */
        private String customField1;

        /**
         * 自定义字段2
         */
        private String customField2;

        /**
         * 自定义字段3
         */
        private String customField3;
    }
}
